package net.hn.hnms.biz.project.service;

import net.hn.hnms.biz.project.domain.ContractInvoice;
import net.hn.hnms.biz.project.domain.ContractPayment;
import net.hn.hnms.biz.project.request.ContractInfoReq;
import net.hn.hnms.biz.project.request.ContractPaymentReq;
import net.hn.hnms.biz.project.vo.ContractInfoVo;
import net.hn.hnms.biz.project.vo.ContractPaymentVo;
import net.hn.hnms.sys.common.core.domain.ResponsePage;
import net.hn.hnms.sys.common.mybatis.core.page.PageQuery;

import java.util.List;

public interface ContractPaymentService {
    /**
     * 新增
     * @param contractPaymentReq
     * @return
     */
    int insert(ContractPaymentReq contractPaymentReq);

    /**
     * 删除结算信息
     * @param idList
     */
    void updateDeleteByIds(List<String> idList);

    /**
     * 单个更新 根据id主键 更新结算信息
     * @param contractPaymentReq
     */
    void updateById(ContractPaymentReq contractPaymentReq);
    /**
     *
     * @param id
     * 通过主键id 查询详情
     */
    ContractPayment selectDetailById(String id);

    /**
     *
     * @param contractPaymentReq
     * 列表
     */
    ResponsePage<ContractPaymentVo> selectPageList(ContractPaymentReq contractPaymentReq, PageQuery pageQuery);

    /**
     *
     * @param contractInfoReq
     * 合同列表
     */
    ResponsePage<ContractInfoVo> selectContractPageList(ContractInfoReq contractInfoReq, PageQuery pageQuery);

    /**
     *
     * @param contractInfoReq
     * 发票下拉信息列表
     */
    List<ContractInvoice> getContractInvoiceList(ContractInfoReq contractInfoReq);
}
